import Login from "@/pages/Login";
import { getToken } from "@/utils/token";
import { Navigate } from "react-router-dom";

// 封装高阶组件(传递一个组件，返回一个组件)
// 核心逻辑：有token正常跳转，无token去登录
/* 使用：修改路由配置文件src\router\index.jsx,在需要鉴权的路由组件外包裹<AuthRoute></AuthRoute>组件
将路由组件以 children 的形式传递给 AuthRoute 组件 */
function AuthRoute({ children }) {
  // 获取token,根据token的有无判断渲染路由组件还是登录组件
  let token = getToken();
  // Navigate 重定向组件 to重定向的路由
  return <>{token ? children : <Navigate to="/login" />}</>;
}

export default AuthRoute;
